// 封装 文章评论
import axios from '@/utils/request'

// 评论 -> 获取文章所有评论  axios 之针对params参数，如果发现键值对，值为null，会忽略此参数名和值不携带在url?后面
export const allArticlesDiscuss = ({
  type,
  source,
  offset = null,
  limit = 10
}) =>
  axios({
    url: '/v1_0/comments',
    params: {
      type, // a-对文章(article)的评论，c-对评论(comment)的回复
      source, // 文章id
      offset, // 获取的评论偏移量
      limit // 获取的每页评论个数
    }
  })

// 评论 —> 取消点赞
export const discussCancelLike = ({ target }) =>
  axios({
    url: `/v1_0/comment/likings/${target}`,
    method: 'DELETE'
  })

// 评论 -> 点赞
export const discussLike = ({ target }) =>
  axios({
    url: '/v1_0/comment/likings',
    method: 'POST',
    data: {
      target
    }
  })

// 评论 -> 发布评论
export const releaseDiscuss = ({ target, content, art_id = null }) => {
  // null值声明只在 params 中生效，data中要使用要判断
  const obj = {
    target,
    content
  }
  if (art_id !== null) {
    obj.art_id = art_id
  }
  return axios({
    url: '/v1_0/comments',
    method: 'POST',
    data: obj
  })
}

// target, // 评论目标的id
// content, // 评论内容
// art_id // 文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。
